1. const,pragma是什么?
这是C/C++通用的一列预处理语句,它利用预处理控制流中对宏重定义的检测,避免头文件的内容被重复包含,进而避免由此引发的函数、变量、常量冲突等问题。
在VisualStudio(VS)项目中,一般用第一行的#pragma once代替。它告诉编译器,这个头文件在用到它的源文件中只允许include一次,第二次见就不要了。效果上与上述代码一样,还省了宏定义。由于这些语录套路固定,犹如“先迈开左脚,再迈开右脚就可以走路,请点赞”一样。
并且3行语句加至少两行空行还很浪费地方,所以在书中省略掉这些东西很正常。
2. constchar?
指向const的指针不能被赋给指向非const的指针,所以应该用strcpy,也就是另开一块内存,把字符一个个复制过去,示例如下: const char *expr = "goodidea"; char *buf = new char[strlen(expr)+1]; strcpy(buf, expr); strcpy 原型:extern char *strcpy(char *dest,char *src); 用法:#include <string.h> 功能:把src所指由NULL结束的字符串复制到dest所指的数组中。 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串,返回指向dest的指针。
3. var和pers的区别?
var释义:
abbr. 加值型经销商(=Value Added reseller);视听范围(=visual-aural range);【计】变量(=variable,被用作定义变量的关键字);垂直机载火箭(Vertical Aircraft Rocket)
pers释义:
abbr.person 人;persons 人;personnel 人员;personal 私人的
例句:
Botrytis cinerea pers ; hypha ; conidia ; biology characteristic .
人参灰霉病菌;菌丝;分生孢子;生物学特性。
The justification of parties in civil proceedings of condominium ownership are the pers .
建筑物区分所有权诉讼当事人适格研究。
4. const316校验仪使用说明书?
1、设置控制压力的方法:
(1)短按(ON/OFF)运行键,关闭运行指示灯,压力控制系统关闭。设置控制上限/下限短按SET键1次,进入下限设置状态(对应下限指示灯亮)。
通过(▲)(▼)设置数值,设置下限完成后,短按SET键进入上限设置,设置方法同上。
5. const的用法?
用法:
n. 常量,常数Qualifying a method's formal parameter as const
将一个方法的形参设置为常量。
You declare a class constant with the constkeyword.
用const关键字声明类常量。
Embedding const ants in code is obviously foolish.
在代码中嵌入常量显然是愚蠢的。
If you don't need to change it, use constreference.
如果你不需要改变它,使用常量引用。
6. const类型的成员函数内部如何改变成员变量?
这是把整个函数修饰为const,意思是“函数体内不能对成员数据做任何改动”。如果你声明这个类的一个const实例,那么它就只能调用有const修饰的函数。
如:
class Text{ public: void printconst(void)const{cout<<"hello"<<endl;} void print(void){cout<<"hello"<<endl;} private: int k; }; const Text a; //上面定义了类Text的一常量对象 int main(void) { a.printconst(); //ok a.print(); //error //上面a.print()调用是非法的 return 0; }
const对象只能调用const成员函数。 const对象的值不能被修改,在const成员函数中修改const对象数据成员的值是语法错误 。 在const函数中调用非const成员函数是语法错误
7. define和const的区别?
define 和 const 是两种用于编程中的标识符,它们的主要区别在于它们的用途、作用以及编译阶段的处理方式。
编译阶段:define 宏是在预处理阶段被展开的,这意味着它在编译代码之前就被处理掉了。相比之下,const 常量则是在编译和运行阶段都起作用的,它会参与到类型的检查和内存管理中。
define 宏的定义会在源代码中被替换掉,因此每个出现的 define 宏都会生成一个新的表达式的结果。
const 常量则会分配内存(可以在堆或栈上),并且在程序运行期间只有一份内存映象。
类型和安全检查:define 宏没有类型信息,也不会进行类型检查,它是纯粹的文本替换操作。而 const 常量具有明确的类型,并在编译时会进行类型检查以确保正确性。
内存占用:define 宏不会分配内存,而是在使用时动态生成表达式的结果,因此在程序中会产生多个副本,从而增加内存开销。相反,const 常量会被分配内存,并且一旦分配就不会再变化,减少了内存的使用。
其他特性:
define 宏不可以用来定义函数。
const 常量可以使用指针指向其地址,而 define 宏则不行。
对于 const 常量,有些集成化调试工具可以进行调试,但对于 define 宏则不支持。
作用域:define 宏的作用域局限于当前文件,而 const 常量可以在多个文件中使用,前提是要在所有相关文件中都定义相同的名字。如果需要在多个文件间共享 const 常量,需要使用 extern 关键字进行声明和定义。
多态性:对于 const 数据成员,虽然它们在单个对象的生命周期内保持不变,但在整个类级别上是可变的,因为一个类可以有多个对象。这与 define 宏定义的宏常量是完全静态的有所不同。